import Axios from "axios";
import qs from "qs"



const axios = Axios.create({
    // baseURL: "http://beta.cdouyin.com",
    // baseURL: "https://www.cdouyin.com",
    baseURL: "/api"

})
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    if (config.url !== "/user/login") {
        config.headers = {
            'Authorization': window.localStorage.getItem("token")
        }
    }

    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    if (response.data.code == 401) {
        alert("Please ReLogin")
        window.location.replace('http://192.168.0.153:8080')
    }
    return response;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});








//登录
export function login(cb, name, pw) {
    axios.post('/user/login', qs.stringify({
        loginName: name,
        passWord: pw
    }))
        .then(res => {
            cb && cb(res.data)
        })
}
//获取用户登录信息
//管理员请求

//获取用户信息
export function getAdminUser(cb) {
    axios.post('/user/getAdminUser')
        .then(res => {
            cb && cb(res.data)
        })
}




//获取edmange代理商列表
export function findUserInfo(cb, obj) {
    axios.post('/agent/agentMall/list', null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch((res) => {
            console.log(res);
        })
}

//代理商重置代理商密码
export function resetPassword(cb, obj) {
    axios.post('/agent/agentMall/resetPassword', null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch((res) => {
            console.log(res);
        })
}
// 修改代理商状态
export function editagentMall(cb, obj) {
    axios.post('/agent/agentMall/edit', null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch((res) => {
            console.log(res);
        })
}
//修改代理商银行卡状态
export function agentBankCardStatus(cb, obj) {

    axios.post('/agent/agentBankCard/update', null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch((res) => {
            console.log(res);
        })
}


//财务管理代充条目
//财务管理代充列表
export function reportList(cb, obj) {
    axios.post('/domain/agentCoinRecord/reportList', null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch((res) => {
            console.log(res);
        })
}
//财务发放金币
export function agreeCoinRequest(cb, id) {
    axios.post('/domain/agentCoinRecord/grant', null, {
        params: {
            ...id
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch((res) => {
            console.log(res);
        })
}
//财务拒绝发放金币
export function refuseCoinRequest(cb, id) {
    axios.post('/domain/agentCoinRecord/reject', null, {
        params: {
            recordId: id
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch((res) => {
            console.log(res);
        })
}



//增加代理商账户
export function AddUserRequest(cb, obj) {
    axios.post("/agent/agentMall/add", null, {
        params: {
            agentTyoe: obj.agentTyoe,
            createTime: obj.createTime,
            erbanNo: obj.erbanNo,
            id: obj.id,
            isAdmin: obj.isAdmin,
            page: obj.page,
            password: obj.password,
            realName: obj.realName,
            resetPassword: obj.resetPassword,
            rows: obj.rows,
            status: obj.status,
            uid: obj.uid,
            updateTime: obj.updateTime,
            userName: obj.userName
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch(res => [
            res
        ])
}








//查询代理商银行卡列表
export function agentBankCardlist(cb, e) {
    axios.post("/agent/agentBankCard/list", null, {
        params: {
            ...e
        }
    })
        .then(res => {
            cb(res.data)
        })
}
//增加代理商银行卡
export function agentBankCardadd(cb, obj) {

    axios.post("/agent/agentBankCard/add", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb(res.data)
        })
}
//查询代充统计数据报表
export function agentRechargeCoin(cb, obj) {

    axios.post("/agent/agentRechargeCoin/statistics", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb(res.data)
        })
}
//查询代充统计数据
export function agentRechargeCoinstatistics(cb, obj) {

    axios.post("/agent/agentRechargeCoin/statistics", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb(res.data)
        })
}

//查询所有代理商代理统计静态数据
export function edagentCoinRecord(cb, obj) {

    axios.post("/domain/agentCoinRecord/statistics", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb(res.data)
        })
}

//查询代充统计数据列表

export function getAgentReport(cb, obj) {
    axios.post("/agent/agentRechargeCoin/reportList", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb(res.data)
        })
}

export function insertAuthentication(cb, obj) {
    axios.post("/agent/agentMall/insertAuthentication", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb(res.data)
        })

}
//金币代充页面
//代理商给用户充值
export function addCoins(cb, obj) {
    axios.post("/agent/agentRechargeCoin/add", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch(res => {
            cb(res)
        })
}
//获取代理商信息

export function getMallAccount(cb, obj) {
    axios.post("/agent/agentMall/getAccount", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch(res => {
            cb(res)
        })
}
//获取代理商金币充值列表信息
export function agentCoinRecord(cb, obj) {
    axios.post("/agent/agentRechargeCoin/list", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch(res => {
            cb(res)
        })
}
//获取代理商代理金币申请记录
export function MalliCoinRecord(cb, obj) {
    axios.post("/domain/agentCoinRecord/list", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch(res => {
            cb(res)
        })
}
//查询代理商银行卡账户
export function checkBankCard(cb, obj) {
    axios.post("/agent/agentBankCard/list", null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch(res => {
            cb(res)
        })
}
//查询代理商实名信息
export function agentRealinfo(cb, id) {

    axios.get("/agent/agentMall/getAuthentication", {
        params: {
            ...id
        }
    }
    )
        .then(res => {
            cb && cb(res.data)
        })
        .catch(res => {
            cb(res)
        })
}
//代理商购买金币
export function agentCoinAdd(cb, obj) {
    axios.post('/domain/agentCoinRecord/add', null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch(res => {
            cb(res)
        })
}
//查询app端用户实名信息
export function appUserRealInfo(cb, obj) {
    axios.get('/agent/agentMall/getAppAuthentication', {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch(res => {
            cb(res)
        })
}
//代理商查看代理请求统计数据
export function mallstatistics(cb, obj) {
    axios.post('/domain/agentCoinRecord/mallstatistics', null, {
        params: {
            ...obj
        }
    })
        .then(res => {
            cb && cb(res.data)
        })
        .catch(res => {
            cb(res)
        })
}